$(function(){
	var $tabList=$("#tab_list"),$pagebar=$("#pagebar ul"),$pageInfo=$("#page_info"),
		pageNo=1,pageSize=10,count=0,totalScore=0,currQuestionScore=0,optionMax=1,optionMax2=1;//初始值
	/**---------------封装分页方法,count:总条目数,pageNo:当前页---------------*/
	function pageit(count){
		$pagebar.empty();
		//首页和上一页
		if(pageNo==1){
			$pagebar.append("<li id='start_page' class='disabled'><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page'  class='disabled'><a href='javascript:void(0);'>上一页</a></li>");
		}else{
			$pagebar.append("<li id='start_page' pn=1><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page' pn="+(pageNo-1)+"><a href='javascript:void(0);'>上一页</a></li>");
		}
		var tmp=parseInt(count/10);
		var page_size=count%10==0?(tmp):(tmp+1);//总页数
		//中间数字页
		if(page_size<=5){
			//如果小于5页,则全部显示
			for(var i = 0; i <page_size; i++) {
				if(i==pageNo-1){
					$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}else{
					$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}
			}
		}else{
			//如果总页数大于5页,显示当前页和前后各两页以及两个...符号
			if(pageNo<3){
				for(var i = 0; i <5; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
			}else if(pageNo>page_size-2){
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
				for(var i = page_size-5; i <page_size; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}else{
				for (var i = pageNo-3; i <pageNo+2; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(pageNo)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}
		}
		//下一页和末页
		if(page_size==0||pageNo==page_size){
			$pagebar.append("<li id='next_page' class='disabled'><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' class='disabled'><a href='javascript:void(0);'>末页</a></li>");
		}else{
			$pagebar.append("<li id='next_page' pn="+(pageNo+1)+"><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' pn="+page_size+"><a href='javascript:void(0);'>末页</a></li>");
		}
		
		//绑定事件
		$pagebar.find("li").not(".disabled").on("click",function(){
			pageNo=parseInt($(this).attr("pn"));//更新当前页码
			reloadList();
		});
		//分页信息条
		$pageInfo.find("span").each(function(i,k){
			if(i==0){
				if(page_size==0){
					$(k).html(0);
				}else{
					$(k).html((pageNo-1)*10+1);
				}
			}else if(i==1){
				$(k).html(count>pageNo*10?pageNo*10:count);
			}else{
				$(k).html(count);
			}
		});
	}
	/**------------------加载列表---------------------*/
	var $typeSelect=$(".tools select");
	var params={"pageNo":1,"pageSize":pageSize,"testId":0};
	function reloadList(){
		params.pageNo=pageNo;
		params.pageSize=pageSize;
		params.testId=$typeSelect.val();
		if(params.testId==0){
			$tabList.find("tbody").empty().append("<tr><td colspan="+$("thead th").length+">无数据,请选择测试分类...</td></tr>");
			return;
		}
		$.get(serverURL+"test/listResult",params,function(data){
			try {
				if(data.code==0){
					data=data.data;
					$tabList.find("tbody").empty();
					count=data.pagination.totalCount;
					totalScore=data.totalScore;        //总分数
					if(count>0){
						var html="";
						$.each(data.list,function(i,k){
							html+="<tr>" +
							"<td id='pkc'><input type='checkbox' id='"+k.id+"' class='checkbox' col='"+i+"'></td>" +
							"<td>"+((pageNo-1)*10+i+1)+"</td>" +
							"<td>"+k.lowScore+"</td>"+ 
							"<td>"+k.highScore+"</td>"+ 
							"<td title='"+k.result+"'>"+k.result+"</td>"+ 
							"</tr>";
						});
						$tabList.find("tbody").append(html);
						$tabList.find("tr").dblclick(function(){
							showEdit($(this).find("#pkc input").attr("id"));
						});
//						$(".tools button").removeAttr("disabled");
					}else{
						$tabList.find("tbody").append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
//						$(".tools button").not(".btn-default").attr("disabled","disabled");
					}
					pageit(count);//重绘工具栏
				}else if(data.code!=-1){
					alert("数据加载出错，请稍后重试");
				}
			} catch (e) {
				alert("数据加载出错，请稍后重试");
			}
		});
	}
	reloadList();
	//全选与取消全选
	$("#pkall").change(function(){
		if($(this).prop("checked")){
			$tabList.find("#pkc :checkbox").prop("checked",true);
		}else{
			$tabList.find("#pkc :checkbox").prop("checked",false);
		}
	});
	//获取选中的行
	function getSelectedCols(){
		return $tabList.find("#pkc :checkbox").filter(":checked");
	}
	/**-------------------加载分类-----------------------*/
	$.get(serverURL+"test/listTest",function(data){
		if(data.code==0){
			var html="",list=data.data;
			for(var i in list){
				var t=list[i];
				html+="<option value='"+t.id+"'>"+t.name+"</option>";
			}
			$typeSelect.append(html);
		}else{
			alert("分类加载失败，请刷行页面重试");
		}
	});
	$typeSelect.change(function(){
		params.testId=$(this).val();
		if($(this).val()!=0){
			reloadList();
		}else{
			$tabList.find("tbody").empty().append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
		}
	});
	/**---------------新增-----------------*/
	var $formAdd=$("#form_add"),$addLowScore=$formAdd.find("[name=lowScore]"),$addHighScore=$formAdd.find("[name=highScore]"),
		$addResult=$formAdd.find("[name=result]");
	//添加按钮
	$("#btn_add").click(function(){
		if(params.testId==0){
			alert("请先选择试题分类，再为分类添加试题");
			return;
		}
		$("#modal_add").modal("show");
	});
	//表单验证
	var regScore=/^\d{1,3}$/;
	function checkAddForm(){
		if(!regScore.test($addLowScore.val())){
			warnInput($addLowScore);
			return false;
		}
		if(!regScore.test($addHighScore.val())){
			warnInput($addHighScore);
			return false;
		}
		if($addHighScore.val()<$addLowScore.val()){
			alert("结束分数不能低于开始分数");
			return false;
		}
		if(!$addResult.val()){
			warnInput($addResult);
			return false;
		}
		if($addResult.val().length>300){
			alert("测试结果不能超过300个字符");
			return false;
		}
		return true;
	}
	$("#btn_confirm_add").click(function(){
		if(checkAddForm()){
			$formAdd.ajaxSubmit({  
				dataType:'json',
				resetForm:true,
				data:{"testId":params.testId},
		        success:function(data){
		        	if(data.code==0){
		        		$("#modal_add").modal("hide");
		        		$formAdd.get(0).reset();
		        		alert("添加成功");
		        		reloadList();
		        	}else if(data.code!=-1){
		        		alert("添加失败，请重试");
		        	}
		        } 
			});
		}
	});	
    /**-------------修改-----------------*/
	var $formEdit=$("#form_edit"),$editId=$formEdit.find("[name=id]"),
		$editLowScore=$formEdit.find("[name=lowScore]"),$editHighScore=$formEdit.find("[name=highScore]"),
		$editResult=$formEdit.find("[name=result]");
	function showEdit(id){
		$.get(serverURL+"test/getResult?id="+id,function(data){
			if(data.code==0){
				data=data.data;
				$editId.val(data.id);
				$editLowScore.val(data.lowScore);
				$editHighScore.val(data.highScore);
				$editResult.val(data.result);
				$("#modal_edit").modal("show");
			}else if(data.code!=-1){
				alert("数据加载失败！");
			}
		});
	}
	function checkEditForm(){
		if(!regScore.test($addLowScore.val())){
			warnInput($editLowScore);
			return false;
		}
		if(!regScore.test($editHighScore.val())){
			warnInput($editHighScore);
			return false;
		}
		if($editHighScore.val()<$editLowScore.val()){
			alert("结束分数不能低于开始分数");
			return false;
		}
		if(!$editResult.val()){
			warnInput($editResult);
			return false;
		}
		if($editResult.val().length>300){
			alert("测试结果不能超过300个字符");
			return false;
		}
		return true;
	}
	$("#btn_confirm_edit").click(function(){
		if(checkEditForm()){
			$formEdit.ajaxSubmit({  
				dataType:'json',
				resetForm:true,
				success:function(data){
					if(data.code==0){
						$("#modal_edit").modal("hide");
						$formEdit.get(0).reset();
						alert("修改成功");
						reloadList();
					}else if(data.code!=-1){
						alert("修改失败，请重试");
					}
				} 
			});
		}
	});
	/**----------------删除-------------*/
	$("#btn_del").click(function(){
		var $curCol=getSelectedCols();
		if($curCol.length<=0){
			alert("请选择要删除的数据");
			return;
		}
        if (!confirm("确认要删除么？")) {
            return false;
        }
		var ids="";
    	$.each($curCol,function(i,k){
    		ids+=k.id+",";
    	});
    	ids=ids.substring(0, ids.length-1);
    	$.post(serverURL+"test/delResult",{"ids":ids},function(data){
    		if(data.code==0){
    			alert("删除成功!");
    			reloadList();
    		}else if(data.code!=-1){
    			alert("数据加载失败");
    		}
    	});
	});
});